home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Tools / misc / t-pefrag.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  1.9 KB  |  109 lines

  1. /* pe_frag.c: test out the fragmentation stuff */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Tools/misc/RCS/t-pefrag.c,v 6.0 1991/12/18 20:30:40 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Tools/misc/RCS/t-pefrag.c,v 6.0 1991/12/18 20:30:40 jpo Rel $
  9.  *
  10.  * $Log: t-pefrag.c,v $
  11.  * Revision 6.0  1991/12/18  20:30:40  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16.  
  17.  
  18. #include "util.h"
  19. #include <isode/psap.h>
  20.  
  21. #define DEF_FRAGSIZE 128
  22.  
  23. char    *myname;
  24. int    fragsize = DEF_FRAGSIZE;
  25.  
  26. main (argc, argv)
  27. int    argc;
  28. char    **argv;
  29. {
  30.     extern char    *optarg;
  31.     extern int    optind;
  32.     int    opt;
  33.     int    i;
  34.  
  35.     myname = argv[0];
  36.     sys_init (myname);
  37.  
  38.     while((opt = getopt(argc, argv, "f:")) != EOF)
  39.         switch (opt) {
  40.             case 'f':
  41.             fragsize = atoi (optarg);
  42.             if (fragsize <= 0)
  43.                 fragsize = DEF_FRAGSIZE;
  44.             break;
  45.             default:
  46.             fprintf (stderr, "Usage: %s [-f size] [file]", myname);
  47.             break;
  48.         }
  49.     argc -= optind;
  50.     argv += optind;
  51.  
  52.     if (argc > 0) {
  53.         FILE    *fp;
  54.         if ((fp = fopen (*argv, "r")) == NULL) {
  55.             fprintf (stderr, "Can't open file");
  56.             perror (&argv);
  57.             exit(1);
  58.         }
  59.         process (fp);
  60.         (void) fclose (fp);
  61.     }
  62.     else    process (stdin);
  63.     exit (0);
  64. }
  65.  
  66. process (fp)
  67. FILE    *fp;
  68. {
  69.     PS    ps;
  70.     PE    pe;
  71.  
  72.     if ((ps = ps_alloc (std_open)) == NULLPS)
  73.         ps_adios (ps, "ps_alloc (read)");
  74.  
  75.     if (std_setup (ps, fp) == NOTOK)
  76.         ps_adios (ps, "Setup failed (read)");
  77.  
  78.     if ((pe = ps2pe (ps)) == NULLPE)
  79.         ps_adios (ps, "ps2pe");
  80.  
  81.     ps_free (ps);
  82.  
  83.     if (pe_fragment (pe, fragsize) == NOTOK)
  84.         ps_adios (ps, "pe_fragment");
  85.  
  86.     if ((ps = ps_alloc (std_open)) == NULLPS)
  87.         ps_adios (ps, "ps_alloc (write)");
  88.  
  89.     if (std_setup (ps, stdout) == NOTOK)
  90.         ps_adios (ps, "Setup failed (write)");
  91.  
  92.     if (pe2ps (ps, pe) == NOTOK)
  93.         ps_adios (ps, "pe2ps");
  94.  
  95.     ps_free (ps);
  96. }
  97.  
  98. ps_adios (ps, str)
  99. PS    ps;
  100. char    *str;
  101. {
  102.     fprintf (stderr, "%s: %s", myname, str);
  103.     if (ps -> ps_errno)
  104.         fprintf (stderr, " %s", ps_error (ps->ps_errno));
  105.     putc ('\n', stderr);
  106.     (void) fflush(stderr);
  107.     exit(1);
  108. }
  109.